Soru & Cevap

birden fazla textwatcher nasıl kullanılabilir

11.06.2020 - 04:29

her bir satırda ayrı ayrı textwatcher nasıl kullanabilirim yapılması gereken hesaplama işlemi yani dört işlemden toplama ve carpma işlemleri

11 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user gmyucalfarukeren
gmyucalfarukeren
22.02.2023 - 12:47

Birden fazla TextWatcher kullanarak her bir satırda farklı hesaplama işlemleri yapmak mümkündür. Örneğin, bir EditText satırında kullanıcı sayı girdiğinde toplama işlemi yapılırken, başka bir satırda kullanıcı sayı girdiğinde çarpma işlemi yapılabilir

Aşağıda, iki EditText satırı için farklı TextWatcher sınıfları kullanarak toplama ve çarpma işlemlerini nasıl yapabileceğinize dair bir örnek kod verdim

 

EditText editText1 = findViewById(R.id.editText1);
EditText editText2 = findViewById(R.id.editText2);

// Toplama işlemi için TextWatcher sınıfı
TextWatcher additionTextWatcher = new TextWatcher() {
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // EditText'te herhangi bir değişiklik yapıldığında toplama işlemi yapılır
        int value1 = editText1.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText1.getText().toString());
        int value2 = editText2.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText2.getText().toString());
        int result = value1 + value2;
        // sonucu başka bir yere yazdırabilirsiniz
    }

    public void afterTextChanged(Editable s) {
    }
};

// Çarpma işlemi için TextWatcher sınıfı
TextWatcher multiplicationTextWatcher = new TextWatcher() {
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // EditText'te herhangi bir değişiklik yapıldığında çarpma işlemi yapılır
        int value1 = editText1.getText().toString().isEmpty() ? 1 : Integer.parseInt(editText1.getText().toString());
        int value2 = editText2.getText().toString().isEmpty() ? 1 : Integer.parseInt(editText2.getText().toString());
        int result = value1 * value2;
        // sonucu başka bir yere yazdırabilirsiniz
    }

    public void afterTextChanged(Editable s) {
    }
};

// Her bir EditText'e ilgili TextWatcher'ı ekleyin
editText1.addTextChangedListener(additionTextWatcher);
editText2.addTextChangedListener(multiplicationTextWatcher);